שאלה 2:

לאפליקציה של משחק קלפים מסוג "מלחמה"

בנו מחלקה בשם Card

התכונות של מחלקה זו:

val  מספר שלם (2 עד 14) .. נסיך = 11 מלכה = 12 מלך = 13 אס = 14

Color צבע : RED  או BLACK

 

מחלקה בשם CardBox

המכילה 52 קלפים (במערך)

ערמת קלפים לשחקן א Queue1

ערמת קלפים לשחקן ב Queue2

ערמת קלפים – קופה Kopa

וכן מכילה את הפעולות:

הנח שלמחלקות יש פעולות GET  + SET . לא צריך לממשם

A.      ערבב חפיסת קלפים:

            30 פעם מגרילים זוג מספרים בין 0 ל 51 ומחליפים את מיקומי הקלפים בינהם.

B.      חלוקת קלפים לשחקנים:

העברת כל הקלפים מהקופה למערך הקלפים. ערבוב המערך. וחלוקת הקלפים לשני השחקנים (Queue1 , Queue2 ) לסרוגין ( זוגיים לשחק Queue1 ואי זוגיים לשחקן  Queue2)

C.      פעולה שמקבלת שחקן ומחזירה אמת אם אין לו קלפים בערמה.

D.      מלחמה: שולפת קלף מכל שחקן, מדפיסה מי ניצח, ומכניסה את שני הקלפים לערמה של המנצח. אם הקלפים שווים יוגרל בצורה רדנומלית המנצח

 

א.      ממש  את הפעולה הבונה של Catd, הפעולה מקבלת את שתי התכונות של המחלקה

ב.      כתוב את המשתנים של המחלקה וכותרת לכל פעולה במחלקה CardBox

ג.       ממש את הפעולה שתערבב את הקלפים  (A)

ד.      כתוב את הפעולה הבונה של המחלקה CardBox, פעולה זו תאתחל את מערך הקלפים,( 4  קלפים מכל מספר.) תערבב את הקלפים ותחלק לשחקנים. ( אפשר להשתמש בכותרות הפעולות שכתבת בסעיף ב בלי לממשם)

ה.      צור מחלקה בשם Game  שבה יש מופע של מחלקת CardBox , הפעולה הבונה של מחלקה זו תשחק עד שלאחד השחקנים יסתיימו הקלפים ותדפיס אם שם המנצח: (Queue1 או Queue2 ) . ( אפשר להשתמש בכותרות הפעולות שכתבת בסעיף ב בלי לממשם)